<?php
  /**
   * @author 2mdc.com
   * @version 
   */

  class cCreateElement {
    const MATHNAMESPACE = 'm';
    const NAMESPACE = 'w';
    protected $xml;

    private function __construct() {}

    protected function __destruct() {}

    protected function __toString() {
    }

    protected function fGenerateP() {
      $this->xml = '<'.cCreateElement::NAMESPACE.':p>__GENERATEP__</'.cCreateElement::NAMESPACE.':p>';
    }

    protected function fGeneratePPR() {
      $this->xml = str_replace('__GENERATEP__', '<'.cCreateElement::NAMESPACE.':pPr>__GENERATEPPR__</'.cCreateElement::NAMESPACE.':pPr>__GENERATER__', $this->xml);
    }

    protected function fGenerateT($strDat) {
      $this->xml = str_replace('__GENERATER__', '<'.cCreateElement::NAMESPACE.':t>'.$strDat.'</'.cCreateElement::NAMESPACE.':t>', $this->xml);
    }

    protected function fGenerateRPR() {
      $this->xml = str_replace('__GENERATER__', '<'.cCreateElement::NAMESPACE.':rPr>__GENERATERPR__</'.cCreateElement::NAMESPACE.':rPr>__GENERATER__', $this->xml);
    }
  
    protected function fGenerateJC($strVal = '') {
      $this->xml = str_replace('__GENERATEPPR__', '<'.cCreateElement::NAMESPACE.':jc '.cCreateElement::NAMESPACE.':val="'.$strVal.'"></'.cCreateElement::NAMESPACE.':jc>', $this->xml);
    }
  
    protected function fGenerateNOPROOF() {
      $this->xml = str_replace('__GENERATERPR__', '<'.cCreateElement::NAMESPACE.':noProof></'.cCreateElement::NAMESPACE.':noProof>__GENERATEPPR__', $this->xml);
    }

    protected function fGenerateR() {
      if(!empty($this->xml)) {
        if(preg_match("/__GENERATEP__/", $this->xml)) {
          $this->xml = str_replace('__GENERATEP__', '<'.cCreateElement::NAMESPACE.':r>__GENERATER__</'.cCreateElement::NAMESPACE.':r>', $this->xml);
        }
        elseif(preg_match("/__GENERATER__/", $this->xml)) {
          $this->xml = str_replace('__GENERATER__', '<'.cCreateElement::NAMESPACE.':r>__GENERATER__</'.cCreateElement::NAMESPACE.':r>', $this->xml);
        }
      }
      else {
        $this->xml = '<'.cCreateElement::NAMESPACE.':r>__GENERATER__</'.cCreateElement::NAMESPACE.':r>';
      }
    }

    protected function fGenerateDRAWING() {
    	$this->xml = str_replace('__GENERATER__', '<'.cCreateElement::NAMESPACE.':drawing>__GENERATEDRAWING__</'.cCreateElement::NAMESPACE.':drawing>', $this->xml);
    }
  
    protected function fGenerateINLINE($distT= '0', $distB='0', $distL='0', $distR='0'){
    	$this->xml = str_replace('__GENERATEDRAWING__', '<'.cCreateImage::NAMESPACE.':inline distT="'.$distT.'" distB="'.$distB.'" distL="'.$distL.'" distR="'.$distR.'">__GENERATEINLINE__</'.cCreateImage::NAMESPACE.':inline>', $this->xml);    	
    }
  
    protected function fGenerateANCHOR($behindDoc=0, $distT= '0', $distB='0', $distL='114300', $distR='114300', $simplePos=0, $relativeHeight='251658240', $locked=0, $layoutInCell=1, $allowOverlap=1){
    	$this->xml = str_replace('__GENERATEDRAWING__', '<'.cCreateImage::NAMESPACE.':anchor distT="'.$distT.'" distB="'.$distB.'" distL="'.$distL.'" distR="'.$distR.'" simplePos="'.$simplePos.'" relativeHeight="'.$relativeHeight.'" behindDoc="'.$behindDoc.'" locked="'.$locked.'" layoutInCell="'.$layoutInCell.'" allowOverlap="'.$allowOverlap.'">__GENERATEINLINE__</'.cCreateImage::NAMESPACE.':anchor>', $this->xml);    	
    }
  
    protected function fGenerateSIMPLEPOS($x='0', $y='0') {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':simplePos x="'.$x.'" y="'.$y.'"></'.cCreateImage::NAMESPACE.':simplePos>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGeneratePOSITIONH($relativeFrom = 'column') {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':positionH relativeFrom="'.$relativeFrom.'">__GENERATEPOSITION__</'.cCreateImage::NAMESPACE.':positionH>__GENERATEINLINE__', $this->xml);    	
    }
    
    protected function fGeneratePOSITIONV($relativeFrom = 'paragraph') {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':positionV relativeFrom="'.$relativeFrom.'">__GENERATEPOSITION__</'.cCreateImage::NAMESPACE.':positionV>__GENERATEINLINE__', $this->xml);    	
    }
    
    protected function fGeneratePOSOFFSET($num) {
    	$this->xml = str_replace('__GENERATEPOSITION__', '<'.cCreateImage::NAMESPACE.':posOffset>'.$num.'</'.cCreateImage::NAMESPACE.':posOffset>', $this->xml);    	
    }
    
    protected function fGenerateEXTENT($cx='2986543', $cy='2239906') {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':extent cx="'.$cx.'" cy="'.$cy.'"></'.cCreateImage::NAMESPACE.':extent>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateEFFECTEXTENT($l="19050", $t="0", $r="4307", $b="0") {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':effectExtent l="'.$l.'" t="'.$t.'" r="'.$r.'" b="'.$b.'"></'.cCreateImage::NAMESPACE.':effectExtent>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateWRAPSQUARE($wrapText="bothSides") {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':wrapSquare wrapText="'.$wrapText.'"></'.cCreateImage::NAMESPACE.':wrapSquare>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateWRAPNONE() {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':wrapNone></'.cCreateImage::NAMESPACE.':wrapNone>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateWRAPTOPANDBOTTOM() {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':wrapTopAndBottom></'.cCreateImage::NAMESPACE.':wrapTopAndBottom>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateWRAPTHROUGH($wrapText = 'bothSides') {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':wrapThrough wrapText="' . $wrapText . '">__GENERATEWRAPTHROUGH__</'.cCreateImage::NAMESPACE.':wrapThrough>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateWRAPPOLYGON($edited = '0') {
    	$this->xml = str_replace('__GENERATEWRAPTHROUGH__', '<'.cCreateImage::NAMESPACE.':wrapPolygon edited="' . $edited . '">__GENERATEWRAPPOLYGON__</'.cCreateImage::NAMESPACE.':wrapPolygon>', $this->xml);    	
    }
  
    protected function fGenerateSTART($x = '-198', $y = '0') {
    	$this->xml = str_replace('__GENERATEWRAPPOLYGON__', '<'.cCreateImage::NAMESPACE.':start x="' . $x . '" y="' . $y . '"></'.cCreateImage::NAMESPACE.':start>__GENERATEWRAPPOLYGON__', $this->xml);    	
    }
    
    protected function fGenerateLINETO($x = '-198', $y = '21342') {
    	$this->xml = str_replace('__GENERATEWRAPPOLYGON__', '<'.cCreateImage::NAMESPACE.':lineTo x="' . $x . '" y="' . $y . '"></'.cCreateImage::NAMESPACE.':lineTo>__GENERATEWRAPPOLYGON__', $this->xml);    	
    }
    
    protected function fGenerateDOCPR($id="1", $name="0 Imagen") {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':docPr id="'.$id.'" name="'.$name.'" descr="'.$this->getName().'"></'.cCreateImage::NAMESPACE.':docPr>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateCNVGRAPHICFRAMEPR() {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE.':cNvGraphicFramePr>__GENERATECNVGRAPHICFRAMEPR__</'.cCreateImage::NAMESPACE.':cNvGraphicFramePr>__GENERATEINLINE__', $this->xml);    	
    }
  
    protected function fGenerateGRAPHICPRAMELOCKS($noChangeAspect = '') {
    	$xmlAux = '<'.cCreateImage::NAMESPACE1.':graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"';
    	if($noChangeAspect != '') 
    		$xmlAux .= ' noChangeAspect="'.$noChangeAspect.'"';
    	$xmlAux .= '></'.cCreateImage::NAMESPACE1.':graphicFrameLocks>';
    	
    	$this->xml = str_replace('__GENERATECNVGRAPHICFRAMEPR__', $xmlAux, $this->xml);    	
    }
  
    protected function fGenerateGRAPHIC ($xmlns="http://schemas.openxmlformats.org/drawingml/2006/main") {
    	$this->xml = str_replace('__GENERATEINLINE__', '<'.cCreateImage::NAMESPACE1.':graphic xmlns:a="'.$xmlns.'">__GENERATEGRAPHIC__</'.cCreateImage::NAMESPACE1.':graphic>', $this->xml);    	
    }
  
    protected function fGenerateGRAPHICDATA($uri="http://schemas.openxmlformats.org/drawingml/2006/picture") {
    	$this->xml = str_replace('__GENERATEGRAPHIC__', '<'.cCreateImage::NAMESPACE1.':graphicData uri="'.$uri.'">__GENERATEGRAPHICDATA__</'.cCreateImage::NAMESPACE1.':graphicData>', $this->xml);    	
    }
  
    protected function fGeneratePIC($pic="http://schemas.openxmlformats.org/drawingml/2006/picture") {
    	$this->xml = str_replace('__GENERATEGRAPHICDATA__', '<'.cCreateImage::NAMESPACE2.':pic xmlns:pic="'.$pic.'">__GENERATEPIC__</'.cCreateImage::NAMESPACE2.':pic>', $this->xml);    	
    }
  
    protected function fGenerateNVPICPR() {
    	$this->xml = str_replace('__GENERATEPIC__', '<'.cCreateImage::NAMESPACE2.':nvPicPr>__GENERATENVPICPR__</'.cCreateImage::NAMESPACE2.':nvPicPr>__GENERATEPIC__', $this->xml);    	
    }
  
    protected function fGenerateCNVPR($id='0') {
    	$this->xml = str_replace('__GENERATENVPICPR__', '<'.cCreateImage::NAMESPACE2.':cNvPr id="'.$id.'" name="'.$this->getName().'"></'.cCreateImage::NAMESPACE2.':cNvPr>__GENERATENVPICPR__', $this->xml);    	
    }
  
    protected function fGenerateCNVPICPR() {
    	$this->xml = str_replace('__GENERATENVPICPR__', '<'.cCreateImage::NAMESPACE2.':cNvPicPr></'.cCreateImage::NAMESPACE2.':cNvPicPr>__GENERATENVPICPR__', $this->xml);    	
    }
  
    protected function fGenerateBLIPFILL() {
    	$this->xml = str_replace('__GENERATEPIC__', '<'.cCreateImage::NAMESPACE2.':blipFill>__GENERATEBLIPFILL__</'.cCreateImage::NAMESPACE2.':blipFill>__GENERATEPIC__', $this->xml);    	
    }
  
    protected function fGenerateBLIP($cstate='print') {
    	$this->xml = str_replace('__GENERATEBLIPFILL__', '<'.cCreateImage::NAMESPACE1.':blip r:embed="rId'.$this->getRId().'" cstate="'.$cstate.'"></'.cCreateImage::NAMESPACE1.':blip>__GENERATEBLIPFILL__', $this->xml);    	
    }
  
    protected function fGenerateSTRETCH() {
    	$this->xml = str_replace('__GENERATEBLIPFILL__', '<'.cCreateImage::NAMESPACE1.':stretch>__GENERATESTRETCH__</'.cCreateImage::NAMESPACE1.':stretch>__GENERATEBLIPFILL__', $this->xml);    	
    }
  
    protected function fGenerateFILLRECT() {
    	$this->xml = str_replace('__GENERATESTRETCH__', '<'.cCreateImage::NAMESPACE1.':fillRect></'.cCreateImage::NAMESPACE1.':fillRect>', $this->xml);    	
    }
  
    protected function fGenerateSPPR() {
    	$this->xml = str_replace('__GENERATEPIC__', '<'.cCreateImage::NAMESPACE2.':spPr>__GENERATESPPR__</'.cCreateImage::NAMESPACE2.':spPr>', $this->xml);    	
    }
  
    protected function fGenerateXFRM() {
    	$this->xml = str_replace('__GENERATESPPR__', '<'.cCreateImage::NAMESPACE1.':xfrm>__GENERATEXFRM__</'.cCreateImage::NAMESPACE1.':xfrm>__GENERATESPPR__', $this->xml);    	
    }
  
    protected function fGenerateOFF($x='0', $y='0') {
    	$this->xml = str_replace('__GENERATEXFRM__', '<'.cCreateImage::NAMESPACE1.':off x="'.$x.'" y="'.$y.'"></'.cCreateImage::NAMESPACE1.':off>__GENERATEXFRM__', $this->xml);    	
    }
  
    protected function fGenerateEXT($cx='2997226', $cy='2247918') {
    	$this->xml = str_replace('__GENERATEXFRM__', '<'.cCreateImage::NAMESPACE1.':ext cx="'.$cx.'" cy="'.$cy.'"></'.cCreateImage::NAMESPACE1.':ext>__GENERATEXFRM__', $this->xml);    	
    }
  
    protected function fGeneratePRSTGEOM($prst='rect') {
    	$this->xml = str_replace('__GENERATESPPR__', '<'.cCreateImage::NAMESPACE1.':prstGeom prst="'.$prst.'">__GENERATEPRSTGEOM__</'.cCreateImage::NAMESPACE1.':prstGeom>__GENERATESPPR__', $this->xml);    	
    }
  
    protected function fGenerateAVLST() {
    	$this->xml = str_replace('__GENERATEPRSTGEOM__', '<'.cCreateImage::NAMESPACE1.':avLst></'.cCreateImage::NAMESPACE1.':avLst>__GENERATEPRSTGEOM__', $this->xml);    	
    }
  
    protected function fGenerateLN($w ='12700') {
    	$this->xml = str_replace('__GENERATESPPR__', '<'.cCreateImage::NAMESPACE1.':ln w="' . $w . '">__GENERATELN__</'.cCreateImage::NAMESPACE1.':ln>__GENERATESPPR__', $this->xml);    	
    }
  
    protected function fGenerateSOLIDFILL() {
    	$this->xml = str_replace('__GENERATELN__', '<'.cCreateImage::NAMESPACE1.':solidFill>__GENERATESOLIDFILL__</'.cCreateImage::NAMESPACE1.':solidFill>__GENERATELN__', $this->xml);    	
    }
  
    protected function fGenerateSCHEMECLR($val ='tx1') {
    	$this->xml = str_replace('__GENERATESOLIDFILL__', '<'.cCreateImage::NAMESPACE1.':schemeClr val="' . $val . '"></'.cCreateImage::NAMESPACE1.':schemeClr>', $this->xml);    	
    }
  
    protected function fGeneratePRSTDASH($val= 'sysDash') {
    	$this->xml = str_replace('__GENERATELN__', '<'.cCreateImage::NAMESPACE1.':prstDash val="' . $val . '"></'.cCreateImage::NAMESPACE1.':prstDash>__GENERATELN__', $this->xml);    	
    }
  
    protected function fCleanTemplate() {
      $this->xml = preg_replace('/__[A-Z]+__/', '', $this->xml);
    }
    
    protected function fGenerateQUITAR() {
    	$this->xml = '<'.cCreateElement::NAMESPACE.':r>__GENERATER__</'.cCreateElement::NAMESPACE.':r>';
    }
    
    protected function fGeneratePSTYLE($val = 'Textonotaalfinal') {
      $this->xml = str_replace('__GENERATEPPR__', '<'.cCreateElement::NAMESPACE.':pStyle '.cCreateElement::NAMESPACE.':val="'.$val.'"></'.cCreateElement::NAMESPACE.':pStyle>', $this->xml);
    }
  
    protected function fGenerateRSTYLE($val = 'Refdenotaalfinal') {
      $this->xml = str_replace('__GENERATERPR__', '<'.cCreateElement::NAMESPACE.':rStyle '.cCreateElement::NAMESPACE.':val="'.$val.'"></'.cCreateElement::NAMESPACE.':rStyle>', $this->xml);
    }
  
  }
?>